<?php
//require_once(realpath(dirname(__FILE__)) . '/../../Aplicación/models/InvoceProduct.php');
//require_once(realpath(dirname(__FILE__)) . '/../../Aplicación/models/interfaces/IProduct.php');

/**
 * @access public
 * @author Edgar Morán
 * @package Aplicación.models
 */
class Product implements IProduct {
	/**
	 * @AttributeType int
	 */
	private $_id;
	/**
	 * @AttributeType string
	 */
	private $_code;
	/**
	 * @AttributeType string
	 */
	private $_reference;
	/**
	 * @AttributeType string
	 */
	private $_name;
	/**
	 * @AttributeType string
	 */
	private $_description;
	/**
	 * @AttributeType string
	 */
	private $_presentation;
	/**
	 * @AttributeType string
	 */
	private $_picture;
	/**
	 * @AttributeType int
	 */
	private $_stock;
	/**
	 * @AttributeType int
	 */
	private $_minStock;
	/**
	 * @AttributeType float
	 */
	private $_price;
	/**
	 * @AssociationType Aplicación.models.InvoiceProduct
	 */
	public $_access;
    
	/**
	 * Default constructor for class
	 */
    public function __construct($aCode, $aReference, $aName, $aDescription, $aPresentation, $aPicture, $aStock, $aMinStock, $aPrice, $aAccess){
        $this->_code = $aCode;
        $this->_reference = $aReference;
        $this->_name = $aName;
        $this->_description = $aDescription;
        $this->_presentation = $aPresentation;
        $this->_description = $aDescription;
        $this->_picture = $aPicture;
        $this->_stock = $aStock;
        $this->_minStock = $aMinStock;
        $this->_price = $aPrice;
        $this->_access = $aAccess;
    }

    
	/**
	 * @access public
	 * @return int
	 * @ReturnType int
	 */
	public function getId() {
		return $this->_id;
	}

	/**
	 * @access public
	 * @param int aId
	 * @return void
	 * @ParamType aId int
	 * @ReturnType void
	 */
	public function setId($aId) {
        $this->_id = $aId;
	}

	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getCode() {
		return $this->_code;
	}

	/**
	 * @access public
	 * @param string aCode
	 * @return void
	 * @ParamType aCode string
	 * @ReturnType void
	 */
	public function setCode($aCode) {
		$this->_code = $aCode;
	}

	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getReference() {
		return $this->_reference;
	}

	/**
	 * @access public
	 * @param string aReference
	 * @return void
	 * @ParamType aReference string
	 * @ReturnType void
	 */
	public function setReference($aReference) {
		$this->_reference = $aReference;
	}

	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getName() {
		return $this->_name;
	}

	/**
	 * @access public
	 * @param string aName
	 * @return void
	 * @ParamType aName string
	 * @ReturnType void
	 */
	public function setName($aName) {
		$this->_name = $aName;
	}

	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getDescription() {
		return $this->_description;
	}

	/**
	 * @access public
	 * @param string aDescription
	 * @return void
	 * @ParamType aDescription string
	 * @ReturnType void
	 */
	public function setDescription($aDescription) {
		$this->_description = $aDescription;
	}

	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getPresentation() {
		return $this->_presentation;
	}

	/**
	 * @access public
	 * @param string aPresentation
	 * @return void
	 * @ParamType aPresentation string
	 * @ReturnType void
	 */
	public function setPresentation($aPresentation) {
		$this->_presentation = $aPresentation;
	}

	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getPicture() {
		return $this->_picture;
	}

	/**
	 * @access public
	 * @param string aPicture
	 * @return void
	 * @ParamType aPicture string
	 * @ReturnType void
	 */
	public function setPicture($aPicture) {
		$this->_picture = $aPicture;
	}

	/**
	 * @access public
	 * @return int
	 * @ReturnType int
	 */
	public function getStock() {
		return $this->_stock;
	}

	/**
	 * @access public
	 * @param int aStock
	 * @return void
	 * @ParamType aStock int
	 * @ReturnType void
	 */
	public function setStock($aStock) {
		$this->_stock = $aStock;
	}

	/**
	 * @access public
	 * @return int
	 * @ReturnType int
	 */
	public function getMinStock() {
		return $this->_minStock;
	}

	/**
	 * @access public
	 * @param int aMinStock
	 * @return void
	 * @ParamType aMinStock int
	 * @ReturnType void
	 */
	public function setMinStock($aMinStock) {
		$this->_minStock = $aMinStock;
	}

	/**
	 * @access public
	 * @return float
	 * @ReturnType float
	 */
	public function getPrice() {
		return $this->_price;
	}

	/**
	 * @access public
	 * @param float aPrice
	 * @return void
	 * @ParamType aPrice float
	 * @ReturnType void
	 */
	public function setPrice($aPrice) {
		$this->_price = $aPrice;
	}
    
	/**
	 * @access public
	 * @return string
	 * @ReturnType string
	 */
	public function getAccess() {
		return $this->_access;
	}

	/**
	 * @access public
	 * @param string aAccess
	 * @return void
	 * @ParamType aAccess string
	 * @ReturnType void
	 */
	public function setAccess($aAccess) {
		$this->_access = $aAccess;
	}
}
?>